1. Field of the Invention
The invention relates to data processing systems, and more particularly to a memory-accessing system which deallocates objects stored in memory in accordance with assigned object lifetimes.
2. Description of the Related Art
Modern computer systems are organized such that all information within the system is represented by hardware-recognized, memory-resident information structures called objects. This is known as an object-oriented computer architecture. An object is a package of data that is a representation of related information maintained in a contiguously-addressed set of memory locations.
In an object-oriented programming system, each type or class of object has a set of operations that are permitted to be performed on the objects that are members of the class. This is known as an object-based access mechanism. The internal structure of objects is hidden from the programmer. The programmer can manipulate the objects only with the permitted operations. Access to an object is by means of a pointer to the object called an access descriptor. An access descriptor describes the kind of representation (rep) rights (such as read rights or write rights) which define the various kinds of access to the object that are permitted by the holder of the access descriptor for that object.
The above described mechanisms allow many processes running on the system to have access to a very large shared data space. When a process terminates, objects stored in the shared data space need to be reclaimed (made available for use again). This is usually done at great expense in terms of operating system overhead by a process known as "garbage collection". This involves perhaps an additional processor, operating concurrently with the main processor, which detects and collects garbage. It must identify those objects whose content is no longer useful for the task in progress and make the associated memory locations available again for some other use. This can be very time consuming and therefore expensive in term of processing overhead and reduced throughput.
It is an object of this invention to provide a mechanism for identifing those objects associated with a process whose content is no longer useful and make the associated memory locations available again for some other use when the process terminates.
It is a further object of this invention to provide a mechanism for assigning a lifetime to objects associated with a process to thereby enable the implicit deallocation or certain objects and to prevent dangling references if access descriptors which point to objects with shorter lifetimes are stored in objects with longer lifetimes.